package com.cj.user.service.zingfront;

import java.util.Scanner;

/**
 * @Author cheng jun
 * @Description:
 */
public class PenQuestions1 {

    /**
     * ⼩⽩喜欢在⿊板上拼数字，第⼀个时⾠写了⼀个正整数X，然后每过⼀个时⾠会擦
     * 掉数字的最后⼀位，直到他全部擦⼲净。整个过程中，⼩⽩会把数字记录下来，然
     * 后算出总和sum。
     * 例如：X = 680，出现的数字依次680，68，6，他们和为754
     * 现在⼩⽩给出⼀个sum，输出⼀个正整数x，能符合上述过程，否则输出-1（例如
     * sum=738）
     */

    /**
     * 基本算法描述及分析要点：
     * 1.加入两个for循环，第一个for循环遍历所有可能的正整数，第二个for循环嵌套在里面;
     * 2.根据第一个正整数的长度，进行遍历每一个擦掉后一位后的数，然后累加与入参比对，相等就返回第一个for循环遍历出来的整数;
     */
    public static int spellNumbers(int sum) {
        //要输出的正整数
        int x = 0;
        for (int i = 0; i < sum; i++) {
            //每位加起来总和
            int sum2 = 0;
            //转成字符串
            String str = String.valueOf(i);
            //记录正整数长度
            int length = String.valueOf(i).length();
            for (int j = length; j > 0; j--) {
                //字符串转int后累加
                sum2 += Integer.parseInt(str.substring(0, j));
            }
            if (sum2 == sum) {
                x = i;
                return x;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        System.out.println("请给出⼀个sum:");
        Scanner scanner = new Scanner(System.in);
        System.out.println(spellNumbers(scanner.nextInt()));
    }
}
